CRC全稱Cyclic Redundancy Check即循環冗余校核,是一種根據網絡數據包或電腦文件等數據產生簡短固定位數校核碼的快速算法,主要用來檢測或校核數據傳輸或者保存后可能出現的錯誤。CRC利用除法及余數的原理,實現錯誤偵測的功能,具有原理清晰、實現簡單等優點。循環冗余校驗碼是利用軟件進行校驗的算法,因此其檢驗速度很快,校驗的誤碼率也較低,整個計算機網絡通信的信息傳輸速度很高。
CRC算法校驗步驟如下:
CRC校驗采用多項式的編碼方法,設要發送的數據碼有k位,則該數據碼對應的多項式F(x)有k項,k的取值只能為0或1;
G(x)為發送端和接收端預先約好的生成多項式。G(x)的選取對校驗效果起著關鍵的作用,使用較多的生成多項式G(x)有CRC-16、CRC-CCITT、CRC-32等;
R(x)為生成的r階冗余碼多項式,R(x)的項數比G(x)要少一項。R(x)的計算方法為以F(x)作為被除數,先將F(x)乘x′即左移r位,再以G(x)作為除數作模2運算。
CRC校驗算法中,一幀數據有n=k+r位,前k位為數據碼,后r位為冗余碼。由步驟三計算出R(x)后,把R(x)附在F(x)后面形成要傳送的CRC數據,其格式為[F(x),R(x)]。
接收端接收到的數據F′(x)根據模2除法對G(x)進行檢驗。
若F′(x)modG(x)結果為0,表明數據在傳送過程中無差錯,接收端就接收該數據;若F′(x)modG(x)結果不為0,則表明數據傳送有錯誤,接收端丟棄該數據。
回答所涉及的環境:聯想天逸510S、Windows 10。
CRC全稱Cyclic Redundancy Check即循環冗余校核,是一種根據網絡數據包或電腦文件等數據產生簡短固定位數校核碼的快速算法,主要用來檢測或校核數據傳輸或者保存后可能出現的錯誤。CRC利用除法及余數的原理,實現錯誤偵測的功能,具有原理清晰、實現簡單等優點。循環冗余校驗碼是利用軟件進行校驗的算法,因此其檢驗速度很快,校驗的誤碼率也較低,整個計算機網絡通信的信息傳輸速度很高。
CRC算法校驗步驟如下:
CRC校驗采用多項式的編碼方法,設要發送的數據碼有k位,則該數據碼對應的多項式F(x)有k項,k的取值只能為0或1;
G(x)為發送端和接收端預先約好的生成多項式。G(x)的選取對校驗效果起著關鍵的作用,使用較多的生成多項式G(x)有CRC-16、CRC-CCITT、CRC-32等;
R(x)為生成的r階冗余碼多項式,R(x)的項數比G(x)要少一項。R(x)的計算方法為以F(x)作為被除數,先將F(x)乘x′即左移r位,再以G(x)作為除數作模2運算。
CRC校驗算法中,一幀數據有n=k+r位,前k位為數據碼,后r位為冗余碼。由步驟三計算出R(x)后,把R(x)附在F(x)后面形成要傳送的CRC數據,其格式為[F(x),R(x)]。
接收端接收到的數據F′(x)根據模2除法對G(x)進行檢驗。
若F′(x)modG(x)結果為0,表明數據在傳送過程中無差錯,接收端就接收該數據;若F′(x)modG(x)結果不為0,則表明數據傳送有錯誤,接收端丟棄該數據。
回答所涉及的環境:聯想天逸510S、Windows 10。